package View;

import Model.Pojo.Aluno;
import Model.Pojo.Atividade;
import Model.Pojo.Disciplina;
import Model.Pojo.Nota;
import Model.Pojo.Professor;
import Model.Pojo.Turma;
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
import Model.Dao.AlunoImpl;
import Model.Dao.AtividadeImpl;
import Model.Dao.DisciplinaImpl;
import Model.Dao.NotaImpl;
import Model.Dao.ProfessorImpl;
import Model.Dao.TurmaImpl;

/**
 *
 * @author Amanda
 */
public class MenuPrincipal {

    private MenuAluno menuAluno;
    private MenuAtividade menuAtividade;
    private MenuDisciplina menuDisciplina;
    private MenuProfessor menuProfessor;
    private MenuTurma menuTurma;

    MenuPrincipal(MenuAluno menuAluno, MenuAtividade menuAtividade, MenuDisciplina menuDisciplina, MenuProfessor menuProfessor, MenuTurma menuTurma) {
        this.menuAluno = menuAluno;
        this.menuAtividade = menuAtividade;
        this.menuDisciplina = menuDisciplina;
        this.menuProfessor = menuProfessor;
        this.menuTurma = menuTurma;


    }

    public void menuPrincipal() throws IOException {
        int resposta;
        String temporaria;
        System.out.println("Bem vindo ao sistema de controle academico da UFLN");
        System.out.println("Selecione seu tipo de usuario");
        System.out.println("1- Administrador");
        System.out.println("2- Professor");
        System.out.println("3- Aluno");
        System.out.println("4- Sair");
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        temporaria = buf.readLine();
        resposta = Integer.parseInt(temporaria);
        switch (resposta) {
            case 1:
                menuAdministrador();
                break;

            case 2:
                menuProfessor();
                break;

            case 3:
                menuAluno();
                break;
            case 4:
                break;
        }
    }

    public void menuAdministrador() throws IOException {

        int cadastraMaisUm = 0;
        while (cadastraMaisUm == 0) {
            limpaTela();
            BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Bem vindo");
            System.out.println("Selecione a opcao desejada:");
            System.out.println("1- Cadastrar Aluno");
            System.out.println("2- Cadastrar Professor");
            System.out.println("3- Cadastrar Administrador");
            System.out.println("4- Cadastrar Turma");
            System.out.println("5- Cadastrar Disciplina");
            System.out.println("6- Inserir aluno na turma");//TODO

            System.out.println("7- Sair");
            String resposta = buf.readLine();
            Integer opcao = Integer.parseInt(resposta);
            switch (opcao) {
                case 1:
                    menuAluno.menuCadastroAluno();
                    break;
                case 2:
                    menuProfessor.menuCadastroProfessor();
                    break;
                case 3:
                    menuCadastroAdministrador();
                    break;
                case 4:
                    menuTurma.menuCadastroTurma();
                    break;

                case 5:
                    menuDisciplina.menuCadastraDisciplina();
                    break;
                    
                case 6:
                    menuTurma.InserirAlunoNaTurma();
                    break;

                case 7:
                    cadastraMaisUm = 1;
                    break;

            }
        }
    }

    public void menuAluno() throws IOException {
        int consulta = 0;
        while (consulta == 0) {
            limpaTela();
            BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Bem vindo");
            System.out.println("Selecione a opcao desejada:");
            System.out.println("1- Consultar Falta");
            System.out.println("2- Consultar Nota");
            System.out.println("3- Sair");
            String resposta = buf.readLine();
            Integer opcao = Integer.parseInt(resposta);
            switch (opcao) {
                case 1:
                    consultarFalta();
                    break;
                case 2:
                    consultarNota();
                    break;
                case 3:
                    consulta = 1;
                    break;

            }
        }
    }

    public void menuCadastroAdministrador() throws IOException {
        int cadastrarMaisUm = 1;
        while (cadastrarMaisUm == 1) {
            limpaTela();
            BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

            System.out.println("Entre com o nome do administrador a ser cadastrado.");
            String nomeAdministrador = buf.readLine();

            System.out.println("Digite o cpf do administrador a ser cadastrado");
            String cpfAdministrador = buf.readLine();



            System.out.println("Administrador cadastrado com sucesso!");


        }
    }

    public void menuProfessor() throws IOException {
        int cadastraMaisUm = 0;
        while (cadastraMaisUm == 0) {
            limpaTela();
            BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Bem vindo");
            System.out.println("Selecione a opcao desejada:");
            System.out.println("1- Lancar Nota");
            System.out.println("2- Cadastrar Atividade");
            System.out.println("3- Finalizar Turma");
            System.out.println("4- Lancar Falta");
            
            System.out.println("5- Sair");
            String resposta = buf.readLine();
            Integer opcao = Integer.parseInt(resposta);
            switch (opcao) {
                case 1:
                    menuTurma.lancarNotas();
                    break;
                case 2:
                    menuAtividade.menuCadastroAtividade();
                    break;
                case 3:
               //     menuTurma.finalizarTurma(null);
                    break;
                // case 4:
                //      menuCadastroFalta();
                //    break;

                case 5:
                    cadastraMaisUm = 1;
                    break;

            }
        }
    }

    public void consultarFalta() throws IOException {
    }

    public void consultarNota() throws IOException {
    }

    public void limpaTela() {
        for (int i = 0; i < 50; i++) {
            System.out.println("");
        }

    }
}